#ifndef _VM_H_
#define _VM_H_

#define SCREEN_COUNT	1		//just one screen for the moment
#define SCREEN_WIDTH	96		//horizontal resolution for one screen
#define SCREEN_HEIGHT	64		//vertical resolution for one screen
#define SCREEN_BPP		8		//how many bits per pixel. 8 or 12


typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed long s32;
typedef unsigned long u32;
typedef signed long long s64;
typedef unsigned long long u64;

typedef u16 VMPtr;

void vm_setBank(u8 bank);
u8 vm_getBank();

void vm_write(VMPtr ptr, void* buf, u16 n);
void vm_writeU8(VMPtr ptr, u8 v);
void vm_writeS8(VMPtr ptr, s8 v);
void vm_writeU16(VMPtr ptr, u16 v);
void vm_writeS16(VMPtr ptr, s16 v);
void vm_writeU32(VMPtr ptr, u32 v);
void vm_writeS32(VMPtr ptr, s32 v);

void vm_read(VMPtr ptr, void* buf, u16 n);
s8 vm_readS8(VMPtr ptr);
u8 vm_readU8(VMPtr ptr);
s16 vm_readS16(VMPtr ptr);
u16 vm_readU16(VMPtr ptr);
s32 vm_readS32(VMPtr ptr);
u32 vm_readU32(VMPtr ptr);




#endif //_VM_H_